#coding:utf-8
import pickle
#封装一个存储对象的方法
def saveObj(type,obj): #type存储的文件名,obj存储的对象
    f = open(type+'.txt','wb')
    pickle.dump(obj,f)
    f.close()
def getObj(type):
    f = open(type+'.txt','rb')
    obj=pickle.load(f)
    f.close()   
    return obj
def showBook(dic):#展示书籍信息的方法
    print('现有书籍信息：')
    print('书籍名：\t书籍数量')
    for i in dic:
        print(i,'\t',dic[i])
def adLogin(a):  #a就是书籍的字典
    showBook(a)
    while True:
        #新增书籍的功能
        cho = input('请输入你的操作：1.新增书籍 2.修改书籍数量 3.退出')
        if cho=='1':
            bookName = input('请输入书籍名')
            bookCou =int(input('请输入书籍数量'))
            a[bookName]=bookCou
            saveObj('book',a)
        elif cho=='2':
            pass
        else:
            break
def norLogin(a):
    showBook(a)
    #让用户借书
    while True:
        bookName = input('请输入要借的书名:')
        if bookName not in a:
            print('书籍不存在！')
            continue
        else:
            print('借书成功！')
            a[bookName]-=1
            saveObj('book',a)
            cho = input('是否继续？Y/N')
            if cho=='N':
                break
print('---欢迎来到XXX图书管理系统---')
while True:
    print('请输入你的操作：')
    cho = input('1.登录 2.注册 3.退出')
    if cho == '1':
        dic = getObj('user') #得到用户信息的字典
        userName = input('请输入账号:')
        if userName not in dic:
            print('账号不存在！')
            continue
        userPsw = input('请输入密码:')
        if dic[userName]!=userPsw:
            print('密码错误！')
            continue
        else:
            #得到书籍情况的字典
            bDic = getObj('book')
            #print(bDic)
            if userName=='admin':
                adLogin(bDic) #管理员界面
            else:
                norLogin(bDic) #普通用户界面
    elif cho == '2':
        #假设已存在这个文件，里面有数据
        dic = getObj('user')
        userName = input('请输入账号:')
        userPsw = input('请输入密码:')
        dic[userName] = userPsw #dic多了数据
        saveObj('user',dic)
    elif cho == '3':
        break
    else:
        print('输入有误！')